home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / akcl1615.lha / lsp / auto.lsp next >
Lisp/Scheme  |  1991-05-01  |  7KB  |  223 lines

  1. (in-package 'si)
  2. ;;; Autoloaders.
  3.  
  4. ;(defautoload compiler::emit-fn compiler::list-undefined-functions "cmpnew/collectfn")
  5. (defmacro defautoload (&rest l &aux forms (module (car (last l))))
  6.   (dolist (name (butlast l))
  7.       (or (fboundp name)
  8.           (push 
  9.            `(defun ,name (&rest argument-list)
  10.           (autoloader ',name ,module argument-list))
  11.            forms)))
  12.   `(progn ,@ forms))
  13.  
  14. ;; this is loaded in the unixport directory
  15. (defun src-path (x) (string-concatenate #. (namestring (truename "../")) x))
  16.  
  17. (defun aload (module &aux *load-verbose*)
  18.   (load  (src-path
  19.       (if (symbolp module)(format nil "lsp/~(~a~)"module) module))))
  20.  
  21. (defun autoloader (name module argument-list)
  22.   ;(fmakunbound name)
  23.   (aload module)
  24.   (apply name argument-list))
  25.  
  26. (defmacro defautoloadmacro (name module)
  27.   `(defmacro ,name (&rest argument-list)
  28.      (autoloadermacro ',name ,module argument-list)))
  29.  
  30. (defun autoloadermacro (name module argument-list)
  31.   ;(fmakunbound name)
  32.   (aload module)
  33.   (funcall (macro-function name) (cons name argument-list) nil))
  34.  
  35.  
  36. ;;; DEFAUTOLOAD definitions. for lsp directory files normally loaded.
  37. (if (fboundp 'abs) (push :numlib *features*))
  38. ;;hack to avoid interning all the :symbols if the files are loaded..
  39. #-numlib
  40. (progn
  41. (defautoload abs :numlib)
  42. (defautoload acos :numlib)
  43. (defautoload acosh :numlib)
  44. (defautoload adjust-array :arraylib)
  45. (defautoload apropos :packlib)
  46. (defautoload apropos-list :packlib)
  47. (defautoload array-dimensions :arraylib)
  48. (defautoload array-in-bounds-p :arraylib)
  49. (defautoload array-row-major-index :arraylib)
  50. (defautoload asin :numlib)
  51. (defautoload asinh  :numlib)
  52. (defautoload atanh :numlib)
  53. (defautoload best-array-element-type :arraylib)
  54. (defautoload bit :arraylib)
  55. (defautoload bit-and :arraylib)
  56. (defautoload bit-andc1 :arraylib)
  57. (defautoload bit-andc2 :arraylib)
  58. (defautoload bit-eqv :arraylib)
  59. (defautoload bit-ior :arraylib)
  60. (defautoload bit-nand :arraylib)
  61. (defautoload bit-nor :arraylib)
  62. (defautoload bit-not :arraylib)
  63. (defautoload bit-orc1 :arraylib)
  64. (defautoload bit-orc2 :arraylib)
  65. (defautoload bit-xor :arraylib)
  66. (defautoload byte :numlib)
  67. (defautoload byte-position :numlib)
  68. (defautoload byte-size :numlib)
  69. (defautoload cis :numlib)
  70. (defautoload coerce :predlib)
  71. (defautoload compile-file :loadcmp)
  72. (defautoload compile :loadcmp)
  73. (defautoload disassemble :loadcmp)
  74. (defautoload concatenate :seq)
  75. (defautoload cosh :numlib)
  76. (defautoload count :seqlib)
  77. (defautoload count-if :seqlib)
  78. (defautoload count-if-not :seqlib)
  79. (defautoload decode-universal-time :mislib)
  80. (defautoload delete :seqlib)
  81. (defautoload delete-duplicates :seqlib)
  82. (defautoload delete-if :seqlib)
  83. (defautoload delete-if-not  :seqlib)
  84. (defautoload deposit-field :numlib)
  85. (defautoload describe :describe)
  86. (defautoload dpb :numlib)
  87. (defautoload dribble :iolib)
  88. (defautoload encode-universal-time :mislib)
  89. (defautoload every :seq)
  90. (defautoload fceiling :numlib)
  91. (defautoload ffloor :numlib)
  92. (defautoload fill :seqlib)
  93. (defautoload find :seqlib)
  94. (defautoload find-all-symbols :packlib)
  95. (defautoload find-if :seqlib)
  96. (defautoload find-if-not :seqlib)
  97. (defautoload fround :numlib)
  98. (defautoload ftruncate :numlib)
  99. #-unix (defautoload get-decoded-time :mislib)
  100. #+aosvs (defautoload get-universal-time :mislib)
  101. (defautoload get-setf-method :setf)
  102. (defautoload get-setf-method-multiple-value :setf)
  103. (defautoload inspect :describe)
  104. (defautoload intersection :listlib)
  105. (defautoload isqrt :numlib)
  106. (defautoload ldb :numlib)
  107. (defautoload ldb-test :numlib)
  108. (defautoload logandc1 :numlib)
  109. (defautoload logandc2 :numlib)
  110. (defautoload lognand :numlib)
  111. (defautoload lognor :numlib)
  112. (defautoload lognot :numlib)
  113. (defautoload logorc1 :numlib)
  114. (defautoload logorc2 :numlib)
  115. (defautoload logtest :numlib)
  116. (defautoload make-array :arraylib)
  117. (defautoload make-sequence :seq)
  118. (defautoload map :seq)
  119. (defautoload mask-field :numlib)
  120. (defautoload merge :seqlib)
  121. (defautoload mismatch :seqlib)
  122. (defautoload nintersection :listlib)
  123. (defautoload notany :seq)
  124. (defautoload notevery :seq)
  125. (defautoload si::normalize-type :predlib)
  126. (defautoload nset-difference :listlib)
  127. (defautoload nset-exclusive-or :listlib)
  128. (defautoload nsubstitute :seqlib)
  129. (defautoload nsubstitute-if :seqlib)
  130. (defautoload nsubstitute-if-not :seqlib)
  131. (defautoload nunion :listlib)
  132. (defautoload phase :numlib)
  133. (defautoload position :seqlib)
  134. (defautoload position-if :seqlib)
  135. (defautoload position-if-not :seqlib)
  136. (defautoload prin1-to-string :iolib)
  137. (defautoload princ-to-string :iolib)
  138. (defautoload rational :numlib)
  139. (defautoload rationalize :numlib)
  140. (defautoload read-from-string :iolib)
  141. (defautoload reduce :seqlib)
  142. (defautoload remove :seqlib)
  143. (defautoload remove-duplicates :seqlib)
  144. (defautoload remove-if :seqlib)
  145. (defautoload remove-if-not :seqlib)
  146. (defautoload replace :seqlib)
  147. (defautoload sbit :arraylib)
  148. (defautoload search :seqlib)
  149. (defautoload set-difference :listlib)
  150. (defautoload set-exclusive-or :listlib)
  151. (defautoload signum :numlib)
  152. (defautoload sinh :numlib)
  153. (defautoload some :seq)
  154. (defautoload sort :seqlib)
  155. (defautoload stable-sort :seqlib)
  156. (defautoload subsetp :listlib)
  157. (defautoload substitute :seqlib)
  158. (defautoload substitute-if :seqlib)
  159. (defautoload substitute-if-not :seqlib)
  160. (defautoload subtypep :predlib)
  161. (defautoload tanh :numlib)
  162. (defautoload typep :predlib)
  163. (defautoload union :listlib)
  164. (defautoload vector :arraylib)
  165. (defautoload vector-pop :arraylib)
  166. (defautoload vector-push :arraylib)
  167. (defautoload vector-extend :arraylib)
  168. (defautoload write-to-string :iolib)
  169. (defautoload y-or-n-p :iolib)
  170. (defautoload yes-or-no-p :iolib)
  171.  
  172. (set-dispatch-macro-character #\# #\a 'si::sharp-a-reader)
  173. (set-dispatch-macro-character #\# #\A 'si::sharp-a-reader)
  174. (defautoload si::sharp-a-reader "iolib")
  175. (set-dispatch-macro-character #\# #\s 'si::sharp-s-reader)
  176. (set-dispatch-macro-character #\# #\S 'si::sharp-s-reader)
  177. (defautoload si::sharp-s-reader :iolib)
  178.  
  179.  
  180. ;;; DEFAUTOLOADMACRO definitions.
  181.  
  182. (defautoloadmacro assert :assert)
  183. (defautoloadmacro ccase :assert)
  184. (defautoloadmacro check-type :assert)
  185. (defautoloadmacro ctypecase :assert)
  186. (defautoloadmacro decf :setf)
  187. (defautoloadmacro define-modify-macro :setf)
  188. (defautoloadmacro define-setf-method :setf)
  189. (defautoloadmacro defsetf :setf)
  190. (defautoloadmacro defstruct :defstruct)
  191. (defautoloadmacro si::define-structure :defstruct)
  192. (defautoloadmacro deftype :predlib)
  193. (defautoloadmacro do-all-symbols :packlib)
  194. (defautoloadmacro do-external-symbols :packlib)
  195. (defautoloadmacro do-symbols :packlib)
  196. (defautoloadmacro ecase :assert)
  197. (defautoloadmacro etypecase :assert)
  198. (defautoloadmacro incf :setf)
  199. (defautoloadmacro pop :setf)
  200. (defautoloadmacro push :setf)
  201. (defautoloadmacro pushnew :setf)
  202. (defautoloadmacro remf :setf)
  203. (defautoloadmacro rotatef :setf)
  204. (defautoloadmacro setf :setf)
  205. (defautoloadmacro shiftf :setf)
  206. (defautoloadmacro step :trace)
  207. (defautoloadmacro time :mislib)
  208. (defautoloadmacro trace :trace)
  209. (defautoloadmacro typecase :assert)
  210. (defautoloadmacro untrace :trace)
  211. (defautoloadmacro with-input-from-string :iolib)
  212. (defautoloadmacro with-open-file :iolib)
  213. (defautoloadmacro with-open-stream :iolib)
  214. (defautoloadmacro with-output-to-string :iolib)
  215. )   ;;end autoloads of normally loaded files.j
  216. (if (find-package "COMPILER") (push :compiler *features*))
  217. #+compiler
  218. (defautoload compiler::emit-fn compiler::init-fn "cmpnew/collectfn")
  219.  
  220. (defautoload si::monstartup "lsp/gprof.o")
  221. (defautoload si::set-up-profile "lsp/profile")
  222.  
  223.